membership之用户表扩展

建安 2009-10-14 02:46:01
我用了membership类来实现用户的管理,但是我的用户信息还有很多属性,比如:电话号码,地址等,在不建另外表的情况下,如何对用户信息的扩展(在membership下)
...全文
210 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
biruiyi 2010-04-14
  • 打赏
  • 举报
回复
需要啊
建安 2009-10-16
  • 打赏
  • 举报
回复
我心里就在想我是不是只能思考到这一步,是否跟我的学历有关系,让我对这个问题想不下去了。始终就没有创新出来。或者说这种创新是一种无用功
建安 2009-10-15
  • 打赏
  • 举报
回复
这位仁兄,可以的话你帮我建一个webApp发给我让我看看吧?jianan19860@sina.com
建安 2009-10-15
  • 打赏
  • 举报
回复
在相同的配置情况下在后台中写上:

Profile.FirstName = "anan";
Profile.LastName = "ouyang";
编译没有问题,
在webApp下就报找不到Profile,这是什么原因
namhyuk 2009-10-15
  • 打赏
  • 举报
回复
WebApp上完全可以使用Membership。你这个错误肯定是别的问题引起的。不信你新建一个Web App, 然后用解决方案管理器面板上的Asp.net 配置小按钮配置一下Forms验证,用户,角色等。。。
完全没问题。
建安 2009-10-15
  • 打赏
  • 举报
回复
但是我试过,它报这样的错误:

在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错)
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

SQLExpress 数据库文件自动创建错误:


连接字符串使用应用程序 App_Data 目录中的数据库位置指定了一个本地 SQL Server Express 实例。由于提供程序确定应用程序服务数据库不存在,因此试图自动创建该数据库。要成功检查应用程序服务数据库是否存在并自动创建应用程序服务数据库,必须满足下列配置要求:


如果应用程序 App_Data 目录不存在,则 Web 服务器帐户必须具有对应用程序目录的读写访问权限。这是因为如果不存在 App_Data 目录,Web 服务器帐户将会自动创建它。
如果应用程序 App_Data 目录已存在,则 Web 服务器帐户只要求对应用程序 App_Data 目录的读写访问权限。这是必要的,因为 Web 服务器帐户将尝试确认 SQL Server Express 数据库已在应用程序 App_Data 目录中。如果从 Web 服务器帐户撤消对 App_Data 目录的读访问权限,提供程序便无法正确地确定 SQL Server Express 数据库是否已存在。如果提供程序试图创建已存在的数据库的副本,就会出错。写访问权限是必需的,因为创建新数据库时需要使用 Web 服务器帐户凭据。
计算机上必须安装 SQL Server Express。
Web 服务器帐户的进程标识必须具有本地用户配置文件。有关如何为计算机帐户和域帐户创建本地用户配置文件的详细信息,请参见自述文档。


源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

堆栈跟踪:


[SqlException (0x80131904): 在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错)]
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +4846887
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194
System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject) +4860189
System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject) +90
System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart) +376
System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +221
System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +189
System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +4861315
System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) +29
System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +4863644
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +117
System.Data.SqlClient.SqlConnection.Open() +122
System.Web.Management.SqlServices.GetSqlConnection(String server, String user, String password, Boolean trusted, String connectionString) +82

[HttpException (0x80004005): 无法连接到 SQL Server 数据库。]
System.Web.Management.SqlServices.GetSqlConnection(String server, String user, String password, Boolean trusted, String connectionString) +137
System.Web.Management.SqlServices.SetupApplicationServices(String server, String user, String password, Boolean trusted, String connectionString, String database, String dbFileName, SqlFeatures features, Boolean install) +94
System.Web.Management.SqlServices.Install(String database, String dbFileName, String connectionString) +25
System.Web.DataAccess.SqlConnectionHelper.CreateMdfFile(String fullFileName, String dataDir, String connectionString) +395




而且只能在website项目中使用,在webapplication中用不了
namhyuk 2009-10-15
  • 打赏
  • 举报
回复
比如:
web.config里通过配置覆盖默认设置。

<connectionStrings>
<add name="连接字符串名" connectionString="Data Source=122.*.*.*;Initial Catalog=数据库名;Persist Security Info=True;User ID=***;Password=***" providerName="System.Data.SqlClient"/>
</connectionStrings>


<profile enabled="true" defaultProvider="AspNetSqlProfileProvider" inherits="" automaticSaveEnabled="true">
<providers>
<clear/>
<add connectionStringName="连接字符串"
applicationName="Soccer"
name="AspNetSqlProfileProvider"
type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
<properties>
<clear/>
<!--你的自定义属性-->
</properties>
</profile>

这样子Profile数据库就会存到122.*.*.*;这台机子的Sql Server上。而且不一定是Express版本。
namhyuk 2009-10-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jianan19860 的回复:]
现在问题又来了,profile只能用sql Server 2005 Express数据库,profile只能在建website时才可以用,webApplication用不了。这是真的吗?
[/Quote]
没听说过,你听哪个天才说的?

Profile相关的信息也是存在aspnetdb这个库里存取的。
建安 2009-10-15
  • 打赏
  • 举报
回复
现在问题又来了,profile只能用sql Server 2005 Express数据库,profile只能在建website时才可以用,webApplication用不了。这是真的吗?
namhyuk 2009-10-15
  • 打赏
  • 举报
回复
Profile也是个办法。就为了email, 电话之类的修改aspnetdb库似乎有点不值~
建安 2009-10-15
  • 打赏
  • 举报
回复
在网上搜到一些关于profile方面的知识
http://www.cnblogs.com/tonyqus/archive/2005/12/18/userprofilev2.html
建安 2009-10-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 vrhero 的回复:]
Membership不是给懒人用的...如果你不怕麻烦,好好看看MSDN...另外可以去codeproject看看有没有半成品或例子...
[/Quote]
能否具体给个地址,去学习一下。
vrhero 2009-10-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 jianan19860 的回复:]
在不建另外表的情况下[/Quote]
那就要改造aspnetdb原有的表...但这还不麻烦,还要重写MembershipProvider类和MembershipUser类...

Membership不是给懒人用的...如果你不怕麻烦,好好看看MSDN...另外可以去codeproject看看有没有半成品或例子...
MVC4 MemberShip权限管理系统源码 功能介绍: 本系统通过对MVC4 Simplemembership默认数据库进行扩展实现了后台管理用户,角色和权限。通过角色的权限配置实现对前台Controller和Action的权限管理。 使用方法: 第一步:修改Web.config文件。 这个文件中只需要TYStudioUsersConnectionString中的用户名和密码,修改为你本地具有创建数据库的权限的用户名和密码。修改完成运行程序会系统会自动创建扩展后的Membership数据库。 第二步:建立系统管理员角色和用户。 考虑到手动添加系统管理员角色和用户比较麻烦,初始的程序都是可以匿名访问的,这时候你需要运行系统添加一个系统管理员角色,并添加一个用户赋给系统管理员权限。再添加完系统管理员角色和用户之后你需要修改一下Controllers下面的各个Controller,注释掉[AllowAnonymous]并把//[Authorize(Roles = "系统管理员")]注释打开。编译重新运行程序,这时后台管理系统只能允许系统管理员角色的用户登陆了。 第三步:测试产品模块(ProductController) Controller下有一个ProductController是用来测试我们的权限管理是否成功的起作用了,同时也是对前台Controller和Action进行全线控制的方法。这里使用[TYStudioAuthorize("查询产品")]方式对Action进行访问控制。所有关于Membership的类都在Models/Membership文件夹下面。将来你需要把这些class移植到你的公共project中去,这样就可以使用MVC4 Simplemembership对你的前台进行权限控制了。
1 ACTIVITI数据库结构 2 1.1 数据库名说明 2 1.2 数据库结构 3 1.2.1 Activiti数据清单: 3 1.2.2 名:ACT_GE_BYTEARRAY (通用的流程定义和流程资源) 3 1.2.3 名:ACT_GE_PROPERTY (系统相关属性) 4 1.2.4 名:ACT_HI_ACTINST (历史节点) 5 1.2.5 名:ACT_HI_ATTACHMENT (附件信息) 6 1.2.6 名:ACT_HI_COMMENT (历史审批意见) 6 1.2.7 名:ACT_HI_DETAIL (历史详细信息) 7 1.2.8 名:ACT_HI_IDENTITYLINK (历史流程人员) 8 1.2.9 名:ACT_HI_PROCINST(历史流程实例信息)核心 8 1.2.10 名:ACT_HI_TASKINST(历史任务流程实例信息)核心 9 1.2.11 名:ACT_HI_VARINST(历史变量信息) 9 1.2.12 名:ACT_ID_GROUP(用户) 10 1.2.13 名:ACT_ID_INFO (用户扩展信息) 10 1.2.14 名:ACT_ID_MEMBERSHIP用户用户组关联) 11 1.2.15 名:ACT_ID_USER(用户信息) 11 1.2.16 名:ACT_RE_DEPLOYMENT(部署信息) 12 1.2.17 名:ACT_RE_MODEL (流程设计模型部署) 12 1.2.18 名:ACT_RE_PROCDEF (流程定义) 13 1.2.19 名:ACT_RU_EVENT_SUBSCR (运行时事件) 14 1.2.20 名:ACT_RU_EXECUTION (运行时流程执行实例) 14 1.2.21 名:ACT_RU_IDENTITYLINK(身份联系) 15 1.2.22 名:ACT_RU_JOB(运行中的任务) 15 1.2.23 名:ACT_RU_TASK(运行时任务数据) 16 1.2.24 名:ACT_RU_VARIABLE(运行时流程变量数据) 17 2 ACTIVITI中主要对象的关系 17
OpenWebFlow是基于Activiti(官方网站http://activiti.org/)扩展的工作流引擎,它扩展的功能包括:完全接管了Activiti对活动(activity)权限的管理。Activiti允许在设计model的时候指定每个活动的执行权限,但是,业务系统可能需要根据实际情况动态设置这些任务的执行权限(如:动态的Group)。OpenWebFlow完全实现了与流程定义时期的解耦,即用户对活动的访问控制信息单独管理(而不是在流程定义中预先写死),这样有利于动态调整权限,详见自定义活动权限管理;完全接管了Activiti对用户(IDENTITY_XXX)的管理。在标准的工作流定义中,每个节点可以指定其候选人和候选用户组,但是比较惨的是,Activiti绑架了用户信息的设计!这个是真正致命的,因为几乎每个业务系统都会属于自己的用户信息结构(包括User/Group/Membership),但不一定它存储在Activiti喜欢的那个库中,的结构也不一定一样,有的时候,某些信息(如:动态的Group)压根儿就不采用来存储。OpenWebFlow剥离了用户信息的统一管理,客户程序可以忘掉Activiti的用户、群组、成员关系,详见自定义用户成员关系管理;允许运行时定义activity!彻底满足“中国特色”,并提供了安全的(同时也是优雅的)催办、代办、加签(包括前加签/后加签)、自由跳转(包括前进/后)、分裂节点等功能;支持与致谢开发者使用帮助:https://github.com/bluejoe2008/openwebflow/wiki使用手册与设计说明书(PDF格式) 标签:openwebflow  工作流引擎

13,347

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET技术前瞻
社区管理员
  • .NET技术前瞻社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧