C# ProviderUserKey返回错误的密钥

C# ProviderUserKey返回错误的密钥,c#,asp.net,oracle11g,asp.net-membership,C#,Asp.net,Oracle11g,Asp.net Membership,我正在尝试以下代码 aspx: 我在userid中得到的值与我在数据库中得到的值不同。我做错了什么。我尝试了MembershipUser=Membership.GetUser(),但它返回null 注: 我正在使用配置了asp.net成员资格的Oracle 编辑: 数据库中的用户ID:161863BC7C244AADBF27F5F6250AF99C Userid var:bc631816-247c-ad4a-bf27-f5f6250af99c中的Userid正如我在评论中提到的那样,似乎Orac

我正在尝试以下代码

aspx:

我在userid中得到的值与我在数据库中得到的值不同。我做错了什么。我尝试了
MembershipUser=Membership.GetUser()
,但它返回null

注: 我正在使用配置了asp.net成员资格的Oracle

编辑: 数据库中的用户ID:161863BC7C244AADBF27F5F6250AF99C


Userid var:bc631816-247c-ad4a-bf27-f5f6250af99c中的Userid

正如我在评论中提到的那样,似乎Oracle以不同的顺序存储用户guid。如果确实希望在数据库中获得相同的guid,则需要解决方法。检查。作者使用了一种方法来转换guid:

public static string TranslateOraceEndianUserID() 
    { 
        MembershipUser myObject = Membership.GetUser(); 
        Guid g = new Guid(myObject.ProviderUserKey.ToString()); 
        byte[] b = g.ToByteArray(); 
        string UserID = BitConverter.ToString(b, 0).Replace("-", string.Empty); 
        return UserID; 
    } 
这是未经测试的。作者说

创建了以下方法,为我解决了该问题


我认为这与Oracle存储数据的方式有关。检查谢谢,我想这就是原因。这解决了我的问题@ZedBee回答者是文章的同一作者:)。我没有注意到我之前给你的链接中的答案:)现在陷入了另一个问题。因为我正在将userid保存到我的一个表中。。直接保存用户ID会带来问题。想知道我是否应该将它转换回oracle格式。@ZedBee也许你不应该首先翻译它?哈哈。。是的,我意识到这是一个错误的问题:)
protected void btnLogin_Click(object sender, EventArgs e)
{
    if(!string.IsNullOrEmpty(txtUserName.Text.Trim()) && !string.IsNullOrEmpty(txtPassword.Text.Trim()))
    {
        string username = txtUserName.Text.Trim();
        string password = txtPassword.Text.Trim();
        if (Membership.ValidateUser(username, password))
        {
            MembershipUser user = Membership.GetUser(username);
            string userid = user.ProviderUserKey.ToString();
        }
 }
public static string TranslateOraceEndianUserID() 
    { 
        MembershipUser myObject = Membership.GetUser(); 
        Guid g = new Guid(myObject.ProviderUserKey.ToString()); 
        byte[] b = g.ToByteArray(); 
        string UserID = BitConverter.ToString(b, 0).Replace("-", string.Empty); 
        return UserID; 
    }