Это, очевидно, ответ, который вы искали. Я удалил свой ответ, так как это скорее предложение о реализации, а не хорошее объяснение. Вы можете требовать определенных ролей, используя атрибут IPrincipalPermission и некоторую работу, чтобы заставить его работать с настраиваемыми ролями.
читаюЗащита запросов AJAX через GUID а такжеЗащита запроса ajax , Теперь позвольте мне объяснить мой сценарий, ниже будет фрагмент кода, который может помочь в объяснении в предмете.
[WebMethod[EnableSession = True]
[ScriptMethod]
public static string CreateTitle(string strTitleName)
{
string strResult = "Custom jSon string";
if(Session["Authorized"] == "True" && !String.IsNullOrEmpty(strTitleName))
{
String strTitle = Server.HtmlEncode(strTitleName);
InsertRecordInDB(strTitle);
strResult = "Custom jSOn string" + EncryptMD5("record id");
}
return strResult;
}
и ниже - вызов javascript для отправки параметров. btnCreateTitle_click - это событие нажатия на стороне клиента кнопки. txtTitle - текстовое поле, принимающее название заголовка. На странице также создаются валидаторы для проверки текстового поля. CreateTitle - метод страницы, который я вызываю с помощью scriptmanager.
function btnCreateTitle_Click(evnt){
if(Page.ClientValidate()){
if($get("txtTitle")){
PageMethods.CreateTitle($get("txtTitle").value,success,failure,context);
}}}
Функция успеха показывает сообщение о том, что заголовок был создан, и ссылку с зашифрованным идентификатором записи в виде строки запроса на URL для просмотра сведений о созданном заголовке.
Теперь актуальный вопрос,
Это достаточно безопасно? Что мне не хватает?Как я могу сделать процесс более безопасным и быстрым?