问题将asp.net网站集成到asp.net mvc 4应用程序中

时间:2013-08-19 20:52:25

标签: asp.net asp.net-mvc-4 forms-authentication simplemembership

我正在创建一个asp.net mvc 4应用程序来替换一套现有项目 包括一个asp.net 3.5网站和Windows窗体。

我花了很多时间从头开始开发asp.net mvc 4应用程序 我一直专注于Windows窗体申请。

我现在正在尝试整合asp.net 3.5网站....现在我只是想尝试 将网站添加到项目中。我已经找到了如何做到这一点,我明白了 我需要的大部分内容......但我有一些问题。

我正在使用区域。对于运营商区域(网站适用的地方)我已添加 一个名为aspnet的文件夹...我已经添加了网页和其他代码 文件夹....所有这些编译。

我还通过添加以下行修改了RoutConfig.Cs文件:          routes.IgnoreRoute( “{}资源的.aspx / {*} PATHINFO”);

当我将网页添加到项目时,我只添加了代码,忽略了 项目文件和asp.net网站的web.config .....

我认为我根本不需要转换项目文件......但我是 试图找出如何处理web.config ....我知道我可以 aspnet文件夹中的web.config ....但是我要问的是......

我尝试过只复制现有文件,但它有不同的问题 .net版本(网站是v3.5,mvc应用程序是.net的v4.0)....

我最关心的是如何处理安全问题......网站使用了表单身份验证安全性 并且mvc应用程序使用simpleMembership。

我所做的所有阅读都专注于转换asp.net web应用程序, 没有网站到mvc .....并且大多数人对web.config没有多说 文件....

我也没有找到如何处理安全问题......我再次看到了一些事情 将MVC的安全模型集成到现有的asp.net Web应用程序中, 但没有关于如何让一个asp.net网站使用mvc simplemembership。

帮助!

1 个答案:

答案 0 :(得分:0)

Web窗体和MVC都使用表单身份验证来确保安全性。不同的是使用的成员/角色提供者。 Web表单传统上使用默认的ASP.NET提供程序,而MVC现在使用SimpleMembership提供程序。以下是用于配置SimpleMembership提供程序的web.config中的设置。

<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
<authentication mode="Forms">
  <forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
<roleManager enabled="true" defaultProvider="SimpleRoleProvider">
  <providers>
    <clear/>
    <add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData"/>
  </providers>
</roleManager>
<membership defaultProvider="SimpleMembershipProvider">
  <providers>
    <clear/>
    <add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
  </providers>
</membership>
</system.web>

请注意,您以与Web表单相同的方式配置表单身份验证。主要区别在于将角色和成员资格提供程序分别设置为SimpleRoleProviderSimpleMembershipProvider。您需要在参考中包含程序集WebMatrix.WebData。 SimpleMembership首先使用EF代码,因此在app启动时初始化数据库至关重要。阅读seeding and customizing SimpleMembership上的这篇文章,它将为您提供有关如何在应用中处理数据库初始化的一些提示。有一个名为SimpleSecurity的开源项目将SimpleMembership与应用程序分离,这样可以更容易地将其合并到项目中,并提供一个简单的方法调用来初始化它。你可以read more about it here