Я в настоящее время работаю над другой проблемой в своем проекте MVC ASP.NET. Чтобы лучше понять то, что происходит в кодовой базе, я решил сослаться на проект Исходного кода MVC ASP.NET в своем собственном проекте путем добавления файла решения к моим ссылкам.
Когда я сделал это, я начал получать HTTP 404 ошибки.
Это именно так происходит, мне установили точку останова на OnException()
метод HandleErrorAttribute
, иначе, возможно, требовалось много времени для нахождения фактической проблемы. Когда я нависаю над filterContext
параметр в OnException
вызов метода, я получаю это Exception
описание:
The type 'System.Web.Mvc.ViewMasterPage' is ambiguous: it could come from assembly [path to assembly in GAC] or from assembly [path to assembly in my project]
Блок в GAC там, потому что я установил выпуск ASP.NET MVC 2.0 RC2.
Как я лучше всего разрешаю эту неоднозначность?
System.Web.Mvc
упоминается в Web.Config
, в разделе
. В моем приложении эта запись имеет атрибут токена открытого ключа.
Я решил проблему, удалив атрибут PublicKeyToken
.
Так вот:
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35"/>
стало вот так:
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral"/>
Видимо, Visual Studio не может найти подписанную сборку в GAC, когда отсутствует PublicKeyToken
, поэтому она вынуждена использовать локальную сборку проекта.
Видя, что компьютеры просто продолжают ускоряться и что математики все еще разрабатывают эти алгоритмы
RSA шифрование является безопасным в том, что он полагается на действительно большое число трудно фактор. В конце концов, компьютеры получат достаточно быстро, чтобы за разумное время увеличить число. Чтобы оставаться впереди кривой, вы используете большее число.
Однако для большинства веб-сайтов цель хеширования паролей состоит в том, чтобы сделать неудобным для тех, кто имеет доступ к базе данных, чтение пароля, а не обеспечение безопасности. Для этого MD5 в порядке 1 .
Здесь подразумевается, что если злонамеренный пользователь получает доступ ко всей базе данных, ему не нужен пароль. (Замок на входной двери не помешает мне войти в окно.)
1 Только потому, что MD5 "сломан", не означает, что вы можете просто повернуть его вспять, когда захотите.
-121--1000406- Место, где обычно используется DefureValue
для классов, сериализованных или десериализованных в XML. Он не задает значение по умолчанию во время создания экземпляра и не влияет на автоподдержку.
Из MSDN:
Атрибут DefureStartAttribute не приведет к автоматической инициализации элемента со значением атрибута. Необходимо задать начальное значение в коде.
MSDN - Класс атрибутов DefureStartAttribute
Изменить: как указывает Roland, как и другие, упомянутые в ответах, атрибут также используется конструктором форм
-121--1064221-Я не уверен, но, возможно, ваш ответ лежит в теге assemblyBinding вашего конфигурационного элемента: http://msdn.microsoft.com/en-us/library/twy1dw1e.aspx