asp.net MVC 多租户:有没有办法覆盖/影响 User.Identity.IsAuthenticated?
我有一个自定义会员资格提供程序,它为我们的 ASP.NET Web 表单应用程序提供了良好的服务,现在我在新的 ASP.NET MVC 多租户应用程序中使用它。
会员资格提供程序在 MVC 中运行良好,就像在 Web 表单中一样,但现在想要添加一个额外的约束,我们可以在其中检查用户是否经过身份验证并针对特定“租户”进行身份验证。目前,我们正在根据 URL 跟踪当前的“TenantID”,并检测 URL 的任何更改,并且不仅仅检查 User.Identity.IsAuthenticated,我们的 Controller 和 View 基类中也有类似的内容。
public bool UserIsAuthenticated
{
get
{
return (User.Identity.IsAuthenticated && LoggedInUserTenantID == CurrentTenantID);
}
}
我们如何覆盖/替换 User.Identity.IsAuthenticated 以便我们可以直接使用它?
对以上内容有任何建议或意见欢迎...
I have a custom memebership provider that has served us well for asp.net web forms applications and am now using it in a new asp.net MVC multi-tenancy application.
The membership provider works well in MVC, just as within webforms, but now want to add an additional constraint where we can check if a User is both authenticated and authenticated for a specific "Tenant". We are currently tracking the current "TenantID" based on URLs and detect any changes to URLs and instead of just checking User.Identity.IsAuthenticated, we have something like this in our Controller and View base classes.
public bool UserIsAuthenticated
{
get
{
return (User.Identity.IsAuthenticated && LoggedInUserTenantID == CurrentTenantID);
}
}
How can we override/replace User.Identity.IsAuthenticated so we can use that directly?
Any suggestions or comments on the above welcome...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我找到了这个答案,看起来可能有帮助:
使用 ASP.NET MVC 设置路由 {tenant}/{controller}/{action}/{id}?
将解决这个问题,看看它是否回答了我自己的问题...
编辑/更新:
我最终得出了这个解决方案:
User.Identity.IsAuthenticated 根本不受影响,所有表单身份验证均按原样使用,其他检查通过租户/子域名检测完成。
I have found this answer, which looks like it may help:
Setup a route {tenant}/{controller}/{action}/{id} with ASP.NET MVC?
will work through that and see if it answers my own question...
EDIT/UPDATE:
I eventually came to this solution:
The User.Identity.IsAuthenticated is not influenced at all, all Forms Authentication is used as-is and other checks are done via the Tenant/Subdmain detection.