webForumDet fria alternativet

Flera värden i forms authentication

.NETur .NET

9 svar · 319 visningar · startad av greggan

Medlem sedan jan. 2004678 inlägg
Frågan#1

Hej

Jag har läst på flera ställen att man bara kan föra in ett värde cookien vid forms authentication. Detta värde är användarid.
Jag har även hört att man ska kunna modifiera detta på något sätt.

Jag vill förutom användarid också föra in ett värde som anger vilken typ av användare den som loggar in är.

Hur skulle jag kunna göra detta?

Medlem sedan dec. 19995 875 inlägg
#2

Spara de värden du vill spara som en kommaseparerad sträng, så kan du hämta ut de genom att splitta den sedan.
Ett annat alternativ är att spara just ett användarid, men sidamtidigt spara övrig information på lämpligt ställe som du kopplar ihop med just ditt användarid.

Medlem sedan jan. 2004678 inlägg
#3

Det lät bra med kommaseparerad. :)

Har splittat sådär förut nån gång, men kommer inte riktigt ihåg hur man gjorde, har du lust att visa? :r

Medlem sedan nov. 20022 355 inlägg
#4

något sådant (kan ha sluppit in ngt fel)

string str = "frasse, lasse, hasse";
char[] ch = new char[1];
ch[0] =',';
string[] vec = str.Split(ch);
Medlem sedan jan. 2004678 inlägg
#5

hjälp C#!

men det borde väl se ut ungefär såhär i VB:

dim str as string = "886,4"
dim ch as new Char()
ch = ","
dim str2 as string = str.split(ch)

fast det där kan inte bli helt rätt antar jag. jag vet ju inte vilken av de två jag får ut.

r: så som jag tänkte skulle vara smart att ha det är att ha två funktioner. en som hämtar ut det första och en som hämtar ut det andra.

Medlem sedan nov. 20022 355 inlägg
#6
Dim str As String =  "frasse, lasse, hasse" 
Dim ch() As Char =  New Char(1) {} 
ch(0) =","c
Dim vec() As String =  str.Split(ch)

Körde den genom en parsen så det behöver heller inte vara korrekt. sen tar du ut första värdet: str(0)

Medlem sedan jan. 2004678 inlägg
#7

okej.. ska testa det :)

Medlem sedan jan. 2004678 inlägg
#8

nu blir det fel :(

skapade två funktioner:

function myuserid(txt)
Dim ch() As Char =  New Char(1) {} 
ch(0) =","c
Dim vec() As String =  txt.Split(ch)
myuserid = txt(0)
end function

function myadmin(txt)
Dim ch() As Char =  New Char(1) {} 
ch(0) =","c
Dim vec() As String =  txt.Split(ch)
myadmin = txt(1)
end function

ser dom rätt ut?

det här händer vid inloggningen:

'userid och adminstatus är hämtat från databasen båda är integers
dim info as string = userid & "," & adminstatus
FormsAuthentication.RedirectFromLoginPage(info, false)

mitt felmeddelande lyder som följer:
Operator is not valid for type 'Integer' and type 'Char'

Detta händer när den ska hämta den inloggade användarens userid:

myuserid(User.Identity.Name)

Jag har även lagt till <%@ Import Namespace="System.Web.Security " %> som man ska.

Vad är felet? Jag får känslan av att det är nåt i funktionerna som jag precis fick hjälp med, att det inte går att splitta med char när det är integers. Stämmer detta?

Medlem sedan dec. 20003 563 inlägg
#9

Detta är ett system jag använt tidigare och jag kan välj cut'n pasta några delar av koden som du skulle kunna använda.

' set logincookie
System.Web.Security.FormsAuthentication.SetAuthCookie(_
"eUser|" & iId & "|" & strUsername & "|" & strRealName, False)

...

    ' this class exctracts userinfo of loggedIn users
    ' standard userinfo is stored as "eUser|id|username|realname"
    ' encrypted in formsauthentication
    Public Class UserInfo

        ' extract userid
        Public Shared Function ID(ByVal UserInfo As String) As String
            Dim items() As String
            items = UserInfo.Split("|")
            Return items(1)
        End Function

        ' extract username
        Public Shared Function Name(ByVal UserInfo As String) As String
            Dim items() As String
            items = UserInfo.Split("|")
            Return items(2)
        End Function

        ' extract userRealname
        Public Shared Function Realname(ByVal UserInfo As String) As String
            Dim items() As String
            items = UserInfo.Split("|")
            Return items(3)
        End Function

    End Class
Medlem sedan jan. 2004678 inlägg
#10

Nu löste det sig. :)
Då får jag tacka alla som hjälpte till att lösa detta. Slutgiltiga svaret får väl ändå bli Brimba som gav mig idén till lösningen. :)

137 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)