PDA

View Full Version : سوال: ایجاد یوزر همراه با تعیین role



rahimi.mohamad24
سه شنبه 22 اسفند 1391, 16:00 عصر
سلام
چطوری باید در mvc یوزرهای مختلف با تعیین role درست کنم؟
قبلا در asp.net این کار را با ویزارد راحت انجام می شد ولی الان که دارم از VS2012 استفاده می کنم،دچار مشکل شدم.

Saeed_m_Farid
چهارشنبه 23 اسفند 1391, 11:39 صبح
اگه زیاد کارهای پیچیده احراز هویت ندارین؛ بهترین کار استفاده از کلاسهای آماده SimpleMembership خود MVC هست، بالای هر کنترلر یا اکشنی که خواستید Role خاصی بهش دسترسی داشته باشه باید مثلاً کد زیر رو بدارین:
[Authorize(Roles="admin,editor,publisher")] که با این کار فقط 3 تا Role مربوط به admin و editor ،publisher بهش دسترسی پیدا میکنن؛ یا اینکه اگه واسه قطعه کد خاصی لازم بود، از شرط ()User.IsInRole استفاده کنید؛ البته مشکلی که هست اینه که تا اولین کاربر رجیستر یا ثبت نام نکنه، این موجودیت ها تو منبع داده شما ایجاد نمیشن (چون code-first هستند و اتوماتیک)؛ اینجا یه راه حل ساده برای رفع این مشکل و اضافه کردن Role دلخواه گفته شده : Seeding Membership & Roles in ASP.NET MVC 4 (http://odetocode.com/Blogs/scott/archive/2012/08/31/seeding-membership-amp-roles-in-asp-net-mvc-4.aspx)
اینم یه پست قدم به قدم برای اینکارها » Seed Users and Roles ... (http://blog.longle.net/2012/09/25/seeding-users-and-roles-with-mvc4-simplemembershipprovider-simpleroleprovider-ef5-codefirst-and-custom-user-properties/)

rahimi.mohamad24
پنج شنبه 24 اسفند 1391, 10:03 صبح
خیلی ممنون به خاطر اطلاعات مفیدی که دادید.
ولی مشکل اصلی من اینجاست که چطور و کجا باید یوزهامو ایجاد کنم و کجا باید به هر یوزر role خاصی انتساب بدم.حالا در مرحله ی بعدی من به مطالبی که شما فرمودید، احتیاج پیدا می کنم.
لطفا در این خصوص راهنمایی فرمایید

Saeed_m_Farid
پنج شنبه 24 اسفند 1391, 11:21 صبح
این مرحله اول بود: یعنی مطمئن بشید که جداول دسترسی کاربران حتماً درست شده.
اگه کاملاً دستی (کار با بانک اطلاعاتی) میخواین کاربرها و دسترسی هاشون رو درست کنید:
برای اینکه ببینید جداول کجا درست شده، داخل web.config ببینین connectionString برای کجا تعریف شده (معمولاً یه Catalog پیش فرض در LocalDb)\v11.0) هست که اسمش رو عوض کنید بهتر هست) اونحا 3 تا جدول هست : UserProfile و webpages_Roles و webpages_UsersInRoles میتونید جداول رو تو Server Explorer یا SSMS باز کنید و کاربر خودتون رو اضافه کنید.

rahimi.mohamad24
پنج شنبه 24 اسفند 1391, 12:27 عصر
من نتونستم دیتابیس , جدولاشو تو sql پیدا کنم.آدرسی که به من داده اینه:


<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-createuser-20130314123345;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\asp net-createuser-20130314123345.mdf" providerName="System.Data.SqlClient" />

Saeed_m_Farid
شنبه 26 اسفند 1391, 01:44 صبح
بازکردن Visual Studio
Server Explorer = Ctrl + W, L
Connect to Database
(Microsoft SQL Server (SqlClient
Server Name = (LocalDB)\v11.0
database name = Initial Catalog = aspnet-createuser-20130314123345
OK
دیدن جداول در Server Explorer