PDA

View Full Version : مشکل در اجرای صفحات پوشه هایی که مجوز دسترسی دارند



دختر کوهستان
دوشنبه 29 آذر 1389, 20:57 عصر
سلام دوستان. من توی سایتم یه پوشه ی admin دارم که فقط نقش admin می تونه که ازش استفاده کنه. یه کلاس هم دارم که در اون در واقع کلاس roleprovider رو شخصی سازی کردم البته فقط دو تا تابعش رو. این تابع ها اینا هستند:


Public Overrides Function GetRolesForUser(ByVal username As String) As String()
Dim UserRolename(1) As String
MySQL = "SELECT roles.rolename FROM [user] INNER JOIN roles ON [user].roleid = roles.roleid WHERE ([user].username = @username)"
Cmd.CommandText = MySQL
Cmd.Parameters.AddWithValue("@username", username)
MyConn.Open()
objDR = Cmd.ExecuteReader(System.Data.CommandBehavior.Clos eConnection)
If (objDR.Read()) Then
UserRolename(0) = objDR("rolename").ToString() ' واکشینقشکاربرازدیتابیس

End If
Return UserRolename
End Function

Public Overrides Function IsUserInRole(ByVal username As String, ByVal roleName As String) As Boolean
MySQL = "SELECT roles.rolename as rolename FROM [user] INNER JOIN roles ON [user].roleid = roles.roleid WHERE ([user].username = @username)"
Cmd.CommandText = MySQL
Cmd.Parameters.AddWithValue("@username", username)
MyConn.Open()
objDR = Cmd.ExecuteReader(System.Data.CommandBehavior.Clos eConnection)
If (objDR.Read()) Then
If (objDR("rolename") = roleName) Then
Return True
Else
End If
End If

Return False
End Function

اما هر بار که می خوام یکی از صفحات این پوشه رو باز کنم این error رو میده:
Key cannot be null
Parameter name:key

اینم تصویر خطاو پشته ی برنامه:
63872

omidghadiri
دوشنبه 29 آذر 1389, 22:48 عصر
باسلام واحترام

این کار شما استاندارد نیست و باید نقش دسترسی رو پس از لاگین کردن باید در وب کانفیگ بنویسید برای اینکه بهتر متوجه بشید ، به این تاپیک سر بزنید
http://barnamenevis.org/showthread.php?263776-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%86%D9%88%D8%B9-%D8%A7%D8%AD%D8%B1%D8%A7%D8%B2-%D9%87%D9%88%DB%8C%D8%AA-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%B3%D8%A7%DB%8C%D8%AA-%D9%87%D8%A7%DB%8C%DB%8C-%DA%A9%D9%87-%D8%AA%D9%86%D9%87%D8%A7-%DB%8C%DA%A9-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1-%D8%AF%D8%A7%D8%B1%D9%86%D8%AF&highlight=%26lt%3Bauthentication


و برای اینکه کاملا روی امنیت و کاربرها کنترل داشته باشید ، میتونید با چند شرط اینها رو کنترل کنید.

دختر کوهستان
سه شنبه 30 آذر 1389, 10:56 صبح
باسلام واحترام

این کار شما استاندارد نیست و باید نقش دسترسی رو پس از لاگین کردن باید در وب کانفیگ بنویسید برای اینکه بهتر متوجه بشید ، به این تاپیک سر بزنید
http://barnamenevis.org/showthread.php?263776-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%86%D9%88%D8%B9-%D8%A7%D8%AD%D8%B1%D8%A7%D8%B2-%D9%87%D9%88%DB%8C%D8%AA-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%B3%D8%A7%DB%8C%D8%AA-%D9%87%D8%A7%DB%8C%DB%8C-%DA%A9%D9%87-%D8%AA%D9%86%D9%87%D8%A7-%DB%8C%DA%A9-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1-%D8%AF%D8%A7%D8%B1%D9%86%D8%AF&highlight=%26lt%3Bauthentication


و برای اینکه کاملا روی امنیت و کاربرها کنترل داشته باشید ، میتونید با چند شرط اینها رو کنترل کنید.

دقیقا من هم از همون کدهای اون تاپیک موقع لاگین و لاگ اوت استفاده کردم منتها فقط یه کاربر admin ندارم . ممکنه بیشتر از یکی این نقش رو داشته باشن. راه دیگه ای نداره؟

omidghadiri
سه شنبه 30 آذر 1389, 12:24 عصر
باسلام و عرض خسته نباشید.

به دقت مطالعه کردین؟

سئوال شما کمی نامفهوم هست
1- اگر شما تعداد ادمین هاتون زیاد هست میتونید در بانکتون دسترسی رو مشخص کنید . و یا اینکه یک جدول درست کنید و دسترسی های ادمین رو به اون نسبت بدید.
2- اگر تعداد صفحاتی که نیاز به دسترسی ادمین های متعددی داره باید به تعداد صفحاتتون که وجود داره وب کانفیگ درست کنید و بهشون سطح دسترسی بدید.

دختر کوهستان
سه شنبه 30 آذر 1389, 21:24 عصر
بله دقیقا پوشه ی admin یه webconfig داره که اجازه دسترسی رو فقط به کاربران ادمین میده.کاربران ادمین هم در بانک تعریف شدن. webconfig اصلی هم که صفحه ی لاگین و پیش فرض و ... مثل همین تاپیک که اشاره کردن رو داره. و یه دونه هم کلاس rolemanagement دارم که شخصی سازی کردم از roleprovider. پوشه ی user من این مشکل رو نداره ولی ادمین چرا.