2011-10-17 78 views
0

再创建一个登录页面,我想创建外部直接链接其他登录页面(多个项目需要身份登录页面的外观。)外部链接

这有可能创造登录控制器中的另一个观点或我需要创建另一控制器?我试图创建另一个控制器,但我根本无法访问。

有没有人得到一些好点子?

干杯

回答

0

如果使用相同的认证机制,可以只通过外部URL作为参数

http://yourwebsite/Account/LogOn?returnUrl=<external url> 

,然后在身份验证之后的页面重定向到返回URL。

0

登录返回到外部链接是一个坏主意。不要这样做。请参阅Wrox Professional ASP.NET MVC 3书籍的第7章。 这被称为开放重定向攻击。在ASP.NET MVC 3的模板中有用于帐户控制器的代码,用于阻止开放重定向,但允许它的风险是任何人都可以通过返回url查询字符串中的恶意网址发布链接到您网站的登录地址。通过允许这种开放重定向,您可以让您的网站访问者倾向于进行社交工程。黑客可以向用户发送链接到您的网站。他们点击,看起来像您的网站,地址栏是正确的,该网站看起来很安全,证书不错,所有。他们登录后,他们被您的网站重定向到外部网址。外部网址可能有任何代码在运行,并且可能会让您的用户容易受到任何数量的攻击/ javascript攻击。

我知道我特别提到MVC,但对于任何网站都是如此。

如果您需要另一个站点的登录页面,那么您需要将控制器和视图复制到该项目中,并在该项目中设置配置(您可以查看现有项目以获取适当的设置) 。

您的站点是否都有相关的,使用相同的用户?还是他们分开不同的网站?如果它们都是相关的,你可以把它们放在一个项目中吗?这样,你可以使用一个成员资格提供商和数据库,以及不同的控制器/视图文件夹为您的网站的不同部分?

或者你是否在可以使用Windows身份验证并跳过显示登录页面的域中?

或者你想要像Azure或STS服务器中的ACS那样的应用程序上的单一登录,或者什么。 (在WIF上寻找好的/现代的书,如果是这样,讨论ACS 2.0)