所以即时使用此代码:
var userEmailAddr = "No Email";
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
try
{
MembershipUser currentUser;
currentUser = Membership.GetUser(User.Identity.Name);
userEmailAddr = currentUser.Email;
}
catch (Exception ex)
{
userEmailAddr = ex.ToString();
}
}
else
{
if (Request.QueryString["acEmail"] != null)
{
userEmailAddr = Request.QueryString["acEmail"];
}
else
{
Response.Redirect("~/");
}
}
但我得到了这个例外:
System.Web.HttpException(0x80004005):无法连接到SQL Server数据库。 ---> System.Web.HttpException(0x80004005):无法连接到SQL Server数据库。 ---> System.Data.SqlClient.SqlException(0x80131904):建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。在System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity身份 - (提供者:SQL网络接口,错误26错误定位指定的服务器/实例),SqlConnectionString connectionOptions,SqlCredential凭证,对象providerInfo,字符串NEWPASSWORD,SecureString的newSecurePassword,布尔redirectedUserInstance ,SqlConnectionString userConnectionOptions,SessionData reconnectSessionData,池类DBConnectionPool,字符串的accessToken,布尔applyTransientFaultHandling)在System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions选项,DbConnectionPoolKey poolKey,对象poolGroupProviderInfo,池类DBConnectionPool,的DbConnection owningConnection,DbConnectionOptions USEROPTIONS)在System.Data。 System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection拥有)的ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection,DbConnectionPoolGroup poolGroup,DbConnectionOptions userOptions)连接,TaskCompletionSource 1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource
1重试,DbConnectionOptions USEROPTIONS)在System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(的DbConnection outerConnection,DbConnectionFactory connectionFactory的,TaskCompletionSource 1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource
1重试)在System.Data.SqlClient.SqlConnection.TryOpen (TaskCompletionSource`1重试)System.Web.Management.SqlServices.GetSqlConnection上的System.Data.SqlClient.SqlConnection.Open()(String server,String user,String password,Boolean trusted,String connectionString)ClientConnectionId:00000000-0000- 0000-0000-000000000000 System.Web.Management上的System.Web.Management.SqlServices.GetSqlConnection(字符串服务器,字符串用户,字符串密码,布尔值受信任,字符串连接字符串)中的错误号:-1,状态:0,类:20 System.Web.Management.SqlService上的.SqlServices.SetupApplicationServices(String server,String user,String password,Boolean trusted,String connectionString,String database,String dbFileName,SqlFeatures features,Boolean install) System.Web.DataAccess.SqlConnectionHelper.CreateMdfFile(String fullFileName,String dataDir,System.Web.DataAccess.SqlConnectionHelper.CreateMdfFile(String fullFileName,String dataDir,String connectionString)中的s.Install(String database,String dbFileName,String connectionString)串的connectionString)在System.Web.DataAccess.SqlConnectionHelper.EnsureDBFile(串的connectionString)在System.Web.DataAccess.SqlConnectionHelper.GetConnection(串的connectionString,布尔revertImpersonation)在System.Web.Security.SqlMembershipProvider.GetUser(字符串username,布尔userIsOnline )System.Web.Security.Membership.GetUser(String username,Boolean userIsOnline)at System.Web.Security.Membership.GetUser(String username)at at ASP._Page_Views_ManagePreferences_Index_cshtml.Execute()in c:\ Users \ administrator \ Documents \ Visual Studio 2017 \ Projects \ nopsite \ Presentation \ Nop.Web \ Views \ ManagePreferences \ Index.cshtml:第23行
任何人都知道如何解决它,对我来说没有意义。
答案 0 :(得分:0)
我试图以错误的方式获取用户的电子邮件地址。 当我使用nopCommerce时,我发现了这段代码:
var workContext = EngineContext.Current.Resolve<IWorkContext>();
string userEmail = workContext.CurrentCustomer.Email;
希望这有助于某人:)