ASP.net Web Pages堆栈附带简单成员资格,其中最好的解释是Matthew Osborn的Using SimpleMembership。 SimpleMembership是一个轻量级的用户/登录/会员系统,它允许cookie用于“记住我”的登录目的。我想通过强制cookie httpOnly并一个安全(仅限https)cookie来提高cookie的安全性。我怎么能这样做?
更新:@ Darin Dimitrov指出httpOnly只是会话,这不是我想要的。
答案 0 :(得分:1)
如果您不使用持久性cookie,这意味着cookie不再存储在客户端计算机上,这会破坏记住我功能的整个目的。 HttpOnly
个cookie存储在浏览器的内存中,但仅限于给定的会话。为了提高安全性,请确保使用secure标志设置cookie,该标志表示此cookie仅通过加密连接传输。
答案 1 :(得分:1)
如果这适用于您,我建议您查看源代码,看看它是如何完成的: http://aspnetwebstack.codeplex.com/SourceControl/changeset/view/9c98c6e9a150#src%2fWebMatrix.WebData%2fWebSecurity.cs
现在我已经检查过了...... :)这就是他们现在的样子:
public static bool Login(string userName, string password, bool persistCookie = false)
{
VerifyProvider();
bool success = Membership.ValidateUser(userName, password);
if (success)
{
FormsAuthentication.SetAuthCookie(userName, persistCookie);
}
return success;
}
public static void Logout()
{
VerifyProvider();
FormsAuthentication.SignOut();
}
其中Membership提供与System.Web.Security.Membersip相同的API - 在启动时实际与WebMatrix.WebData.SimpleMembershipProvider交换。
基本上,如果你想要一个自定义身份验证cookie机制,你必须实现自己的登录&注销逻辑。网络上有很多样本。
我希望这会有所帮助。 祝好运! :)