如果我想设置多域身份验证(或者出于其他原因我想指定身份验证域),我必须在两个地方执行此操作:
在web.config中:
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="2880" enableCrossAppRedirects="true" domain="mydomain.com" />
在登录页面上,当我创建我的身份验证cookie时:
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, user, DateTime.Now, DateTime.Now.AddHours(3), false, role, FormsAuthentication.FormsCookiePath);
string hash = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash);
cookie.Expires = ticket.Expiration;
cookie.Domain = "mydomain.com"; // <-----
Response.Cookies.Add(cookie);
这很好......但每当我想改变域名时,我必须在两个地方做。有没有办法从&lt;直接读取域名?身份验证&gt; web.config中的标签?我知道我可以把它放在&lt; appSettings&gt;部分,并从程序中的任何地方轻松阅读,但我必须在web.config文件中更改它两次。
答案 0 :(得分:0)
您可以在身份验证/表单中进行设置,并以FormAuthentication.CookieDomain
的形式读取