我有一个用 MVC 2.0 开发的 Web 应用程序。我为此 Web 应用程序创建了一个动态数据网站。为了访问动态数据网站,用户被重定向到 MVC 应用程序的登录页面。
登录时,会为用户创建会话。我想在我的动态数据网站上访问此会话以检查用户的角色和用户名。如果用户具有管理员角色,则只允许用户访问动态数据网站。
我怎样才能做到这一点?
我有一个用 MVC 2.0 开发的 Web 应用程序。我为此 Web 应用程序创建了一个动态数据网站。为了访问动态数据网站,用户被重定向到 MVC 应用程序的登录页面。
登录时,会为用户创建会话。我想在我的动态数据网站上访问此会话以检查用户的角色和用户名。如果用户具有管理员角色,则只允许用户访问动态数据网站。
我怎样才能做到这一点?
试试这个解决方案:
在您的第一个 Web 应用程序上(用户用于登录的应用程序)
//create a method that will redirect to your web app 2
public ActionResult RedirectToAnotherSite(string name, string role)
{
//specify the IP or url for your web app 2
//pass the parameters
var rawUrl = string.Format("http://localhost:8051?name={0}&role={1}", name, role);
return Redirect(rawUrl);
}
在您的网络应用程序 2(动态)上打开文件 Global.asax 并添加以下代码
void Application_BeginRequest(object sender, EventArgs e)
{
//get the passed parameters
var req = ((HttpApplication)(sender)).Request;
var name = req.QueryString["name"] ?? string.Empty;
var role = req.QueryString["role"] ?? string.Empty;
//check the role
if (!role.Equals("admin"))
{
//return http access denied
var res = ((HttpApplication)(sender)).Response;
res.StatusCode = 401;
}
}