c# - 跨子域的表单例份验证

标签 c# asp.net forms-authentication

当身份验证发生在子域而不是父域时,是否可以跨子域对用户进行身份验证?

例如:

用户登录到site1.parent.com,然后我们需要将他们发送到reporting.parent.com。

即使登录发生在子域中,我能否向报告站点验证它们?

到目前为止,我所做的所有研究都是让用户先登录到父域,然后每个子域都可以访问身份验证 cookie。

最佳答案

当您对用户进行身份验证时,将身份验证 cookie 的域设置为二级域,即 parent.com。每个子域都将根据请求接收父域的 cookie,因此可以对每个子域进行身份验证,因为您将有一个共享的身份验证 cookie 可以使用。

验证码:

System.Web.HttpCookie authcookie = System.Web.Security.FormsAuthentication.GetAuthCookie(UserName, False);
authcookie.Domain = "parent.com";
HttpResponse.AppendCookie(authcookie);
HttpResponse.Redirect(System.Web.Security.FormsAuthentication.GetRedirectUrl(UserName, 
                                                                       False));

关于c# - 跨子域的表单例份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/608120/

相关文章:

asp.net - 就地处理(无重定向)401 未经授权?

c# - 在 3 个网站之间共享身份验证

asp.net - 表单例份验证 Cookie 过期

c# - 关闭所有子 WPF 窗口并终止等待代码

c# - 在自定义对象集合上使用 LINQ 时,IEquatable<T>、IEqualityComparer<T> 和覆盖 .Equals() 之间的区别?

c# - 处理 Microsoft.AnalysisServices 更新方法的错误

c# - WCF 是这个通用 SOAP 消息的正确方法吗?

asp.net - 用于 bower.json 文件的 Visual Studio 2015 RC 上的 Intellisense 无法正常工作。

c# - 如何为 MVC 的 ReportViewer 设置宽度

asp.net - 为什么页面处理的 AspNetSessionData 阶段会延迟我的页面 20 秒以上?