PDA

View Full Version : سوال: چرا User.Identity.Name نام کامپیوترم را برمیگرداند؟



mehdi-ghafari
یک شنبه 21 خرداد 1391, 00:50 صبح
سلام دوستان.
من تو دات نت 2 از تابع User.Identity.Name خیلی راحت استفاده میکردم و نام کاربر رو برمیگردوند.
ولی الان که میخوام تو دات نت 4 استفاده کنم نام کامپیوترم رو برمیگردونه

من همونطور که تو دات نت 2 استفاده کردم اینجا هم از تنظیمات زیر استفاده کردم:

تو وب کانفیگ:

<forms name=".MEMBERS" defaultUrl="~/Default.aspx" loginUrl="~/Login.aspx" timeout="64" protection="All">
<credentials passwordFormat="SHA1"/>
</forms>

در صفحه لاگ این قیمت رویداد کلیک دکمه:

FormsAuthentication.RedirectFromLoginPage(txtUsern ame.Text, False)

و هرکجا که نیاز به نام کاربر رو داشته باشم از تابع زیر:
User.Identity.Name
ممنونم از راهنمایی شما

مهدی کرامتی
یک شنبه 21 خرداد 1391, 10:34 صبح
در web.config میبایست نوع authentication را بر روی forms قرار دهید.

mehdi-ghafari
یک شنبه 21 خرداد 1391, 10:50 صبح
خیلی خیلی ممنونم از توجهتون.
واقعا اشتباه مسخره ای کرده بودم.
حالا یه سوال دیگه
من توی یکی از پوشه ها که محدودیت دسترسی قرار دادم یک وب کانفیگ گذاشتم که تنظیمات زیر رو اعمال کردم

<authorization>
<deny users="*"/>
</authorization>

میخواستم بدونم تفاوت مقدار * با مقدار ؟ برای خاصیت deny در چیه؟
چون وقتی * میذارم اصلا لاگ این نمیشه و وقتی هم ؟ میذارم اون محدودیتها رو اعمال نمیکنه. و همه دسترسی خواهند داشت.
بازم ممنون

مهدی کرامتی
یک شنبه 21 خرداد 1391, 11:57 صبح
* یعنی همه کاربران، ؟ یعنی کاربران لاگین نشده.

mehdi-ghafari
یک شنبه 21 خرداد 1391, 12:02 عصر
ممنون
حالا اگر من بخوام به یک پوشه فقط برنامه دسترسی داشته باشه چی؟
یعنی حتی مالک سایت هم به اون دسترسی نداشته باشه و فقط برنامه بره و یه سری فایل رو بخونه؟
اصلا این کار از طریق تنظیم همین وب کانفیگ میشه یا باید کد خاصی رو قرار بدم؟

ممنون

مهدی کرامتی
یک شنبه 21 خرداد 1391, 13:54 عصر
در این مورد همان <deny users="*"> کفایت می کند.