我需要使用FormsAuthentication来验证使用ajax的用户的登录,我知道我不能使用FormsAuthentication.RedirectFromLoginPage(“UserName”,false),因为使用ajax时没有重定向。
我可以用什么来设置此用户的授权。
试图使用:
FormsAuthentication.SetAuthCookie("UserName", false);
但是这里有cookie,我不想使用cookie。
由于
答案 0 :(得分:0)
您可以在请求/响应周期(例如Cookie)中单独使用表单身份验证的加密/解密/到期方面。
例如:您可以将auth令牌作为字符串获取,如下所示:
// create a ticket for "myusername" which expires in 15 minutes
string authToken = FormsAuthentication.Encrypt(new FormsAuthenticationTicket("myusername", false, 15));
然后当使用从某个自定义方法(用户没有真正指定您将使用的内容而不是Cookie)接收回来时,您使用FormsAuthentication.Decrypt来检查它是否有效。请注意,您必须捕获异常和检查null以检查有效性。
// decrypt receivedAuthToken string which was received somehow in your request
FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(receivedAuthToken);
但是你也必须自己管理更新过程:
var newTicket = FormsAuthentication.RenewTicketIfOld(authTicket);
var newToken = FormsAuthentication.Encrypt(newTicket)