2014-02-20 83 views
1

我有一些代码可以创建身份验证票证。创建票后,我们调用SetAuthCookie设置cookie如:SetAuthCookie设置Cookie,但在后续请求中未经身份验证

FormsAuthentication.SetAuthCookie(username, true); 
Response.Redirect("/", true); 

如果我检查根页上看到,如果用户进行身份验证,则返回false。但是,如果我硬编码的用户名在和做:

FormsAuthentication.GetAuthCookie("jason", true).value); 

我得到相应的cookie值。所以,cookie存在。但名称和国旗不会被修改。关于我的问题可能是什么的任何想法?我正在使用ASP.NET 4和MVC。

+0

为什么在ASP.NET MVC应用程序中使用Response.Redirect?这些任务通常通过从相应的控制器操作中返回适当的ActionResult来完成。你也可以在Fiddler中看到被设置的持久性cookie吗?然后当浏览器发出GET请求时,这个cookie传递给'''端点吗? –

+0

因为用户并不总是生活在这个MVC应用程序中。我们可能必须将它们重定向到另一个非MVC应用程序。但是,我可以看到cookie被设置,值只是不填充。 –

回答

3

解决

我错过了在web.config的形式部分。由于登录表单驻留在另一台服务器上,因此已删除本地测试。因此,将以下内容添加到web.config解决了我的问题:

<authentication mode="Forms" /> 
相关问题