asp.net-mvc - asp.net mvc 和类似门户的功能

标签 asp.net-mvc model-view-controller asp.net-mvc-routing

f嗨,

我需要构建一个具有类似功能的门户网站,其中请求中的参数将标识门户网站。像这样 http:/domain/controller/action/portal

现在我的问题是,如果门户不存在,则必须重定向到其他站点/页面,并且用户可以登录到一个门户,但如果用户进入其他门户,则必须将用户重定向回登录页面对于那个门户。

我现在有一些工作,但我觉得管道中必须有一个中心位置来处理这个问题。我当前的解决方案使用自定义操作过滤器,它检查门户参数并查看门户是否存在并检查用户是否登录到该门户(用户登录的门户在身份验证 cookie 中)。我在 application_postauthentication 事件中创建了自己的 IIndentiy 和 IPrincipal。

我目前的方法有两个问题:

1:它并没有真正强制执行,我必须将属性添加到所有 Controller 和/或操作。

2:对用户进行身份验证并没有真正起作用,我希望它起作用。但是为此,当我创建 IPrincipal/IIndenty 时,我需要访问路由的参数,但我似乎找不到正确的位置来执行此操作。

希望有人能给我一些指点,
理查德.

最佳答案

有几种不同的方法可以做到这一点(一如既往......)。如果您想在 Controller 中(或通过属性)执行此操作,但又想全局执行此操作,那么您始终可以使用自定义基本 Controller 类并在那里应用逻辑。 actionfilter 属性是继承的,bob 是你的叔叔。

另一方面,这对我来说真的像是一个路由问题。所以我可能会考虑创建一个自定义路由来处理你正在做的事情。如果你这样做,那么一旦你让它工作,你就会想要在负载下测试它以确保你有一个好的缓存策略(这样每个请求都不是路由的数据库查找+另一个对于 Controller 中发生的任何事情)。

关于asp.net-mvc - asp.net mvc 和类似门户的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2910558/

相关文章:

c# - 使用像 ASP.NET MVC 路由这样的路由解析对象

jquery - C# MVC 页面上的 JQgrid DateTime 显示并应用了时区偏移量...想要显示服务器时间

java - MVC - 如何将数据从 View 传递到 Controller

c# - 自动 URL 参数编码失败

asp.net-mvc - KnockoutJS : ko. mapping.fromJS问题

c# - 向成员(member)发送忘记密码的最佳做法

c++ - 重构算法

c# - 从局部 View 设置主 url 的路由值

c# - 将查询字符串传递给 mvc View 操作

asp.net - 您是否将辅助类存储在单独的程序集中?