如何在ASP.NET webforms中使用FormsAuthentication时禁用或启用cookie?

时间:2012-10-23 19:23:03

标签: asp.net jquery forms-authentication

我需要使用FormsAuthentication来验证使用ajax的用户的登录,我知道我不能使用FormsAuthentication.RedirectFromLoginPage(“UserName”,false),因为使用ajax时没有重定向。
我可以用什么来设置此用户的授权。
试图使用:

FormsAuthentication.SetAuthCookie("UserName", false);

但是这里有cookie,我不想使用cookie。

由于

1 个答案:

答案 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)
相关问题