认证/授权的实体框架

时间:2012-02-17 21:57:46

标签: mysql entity-framework authentication

过去,我们只使用默认的asp.net配置来自动添加表格和相关代码。然后稍微更新一下以满足我们的需求,例如一些自定义配置文件提供程序。

现在我们正在使用MVC3和Entity Framework 4.此外,我们这次使用MySQL作为数据库,因为EF4可以很好地与所有类型的数据库进行通信。然后我们遇到了一些问题。

  1. asp.net配置将在web.config中创建一个单独的连接字符串条目并使用该条目。我们可以使用现有的EDMX模型吗?

  2. 由于我们无法在MySQL数据库中编写存储过程,是否有任何示例代码在不使用存储过程的情况下设计这些成员资格/配置文件提供程序?

  3. 谢谢。


    [更新 - 回应Mathieu Leblanc]

    我目前的项目是使用现有的MySQL数据库,该数据库已包含成员资格,角色和配置文件信息。因此,我们不要使用Aspnet_regsql.exe在数据库中创建新表。我们如何使用现有的数据库结构来设计这些提供者?

    到目前为止,我还没有想过一个好的解决方案。任何建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

您确实可以使用单个数据库来保存身份验证表和常规的EF4数据库。

您可以使用命令行工具Aspnet_regsql.exe生成创建所有ASP.Net身份验证表的脚本(详情请参阅:http://msdn.microsoft.com/en-us/library/ms229862.aspx

您还可以修改web.config以使单个连接字符串指向您的单个数据库,但我建议您保留两行,每行都有其名称(及其用途),并让它们指向相同的数据库中。

它看起来像

<configuration>
  <connectionStrings>
    <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS2008;Integrated Security=SSPI;initial catalog=MyDatabase" providerName="System.Data.SqlClient" />
    <add name="MyEntities" connectionString="data source=.\SQLEXPRESS2008;Integrated Security=SSPI;initial catalog=MyDatabase" providerName="System.Data.SqlClient" />
  </connectionStrings>
...

关于如何使用ASP.Net认证数据库处理MySQL的问题,关于Stored Proc,我不知道它是如何工作的(如果有的话)。