Pregunta

He escrito una nueva aplicación en una red, no he trabajado antes, y estoy corriendo en un problema.

Si tengo el siguiente código en C#:

FileStream fs = File.Create(@"\\MyServer\MyShare\testing.txt");
fs.Close();

En una aplicación de consola, este código se ejecuta correctamente.

En un ASP.Net la aplicación, me aparece este error: Error de inicio de sesión:nombre de usuario desconocido o contraseña incorrecta.

En el ASP.Net aplicación, si puedo añadir en identity impersonate="true", me sale este error: El acceso a la ruta de acceso '\MyServer\MyShare esting.txt " es denegado.

Nunca he encontramos con que el mensaje de error de inicio de sesión antes;donde se esta viniendo?Si puedo crear una aplicación en el servidor y tiene que escribir a la phsyical ubicación, funciona bien (por lo que la seguridad no es buena), parece como si la seguridad a la parte que no está funcionando (aunque tiene 'Todo el mundo' full escribe), o que hay algo que falta en el nivel de servidor en el que no puedo ver nada en general.

¿Alguien sabe a qué me estoy perdiendo aquí?He escrito otras aplicaciones que hicieron cosas similares y nunca se han topado con este problema

Gracias!

¿Fue útil?

Solución

Actualización:

Así que creo que he publicado esta demasiado pronto ... La razón por la que estaba fallando en mi localhost se debió al directorio está estableciendo como permitir el acceso anónimo (por lo que la página no se hacía pasar; el usuario era '') <. / p>

También comenzó a trabajar en el servidor, así; Sin embargo, nada ha cambiado allí ... No sé si algo se activó durante el tiempo de inactividad de la aplicación / apagado o qué, pero de trabajo del todo como se esperaba.

Gracias por los comentarios!

Otros consejos

El problema es que con la identidad hacerse pasar por el valor false la cuenta de proceso de trabajo de ASP.NET está intentando escribir en la acción, por lo general es el servicio de red o cuenta ASPNET. Dependiendo de la versión de Windows que está ejecutando.

Configuración de hacerse pasar como verdadero, sin especificar un nombre de usuario o contraseña utilizará la autenticación de los usuarios actuales para tratar de hacer la solicitud.

Será necesario que sea una subvención los permisos de cuenta de proceso de trabajo, que muy probablemente no es posible. O B crear una cuenta específica que su aplicación puede hacerse pasar, a continuación, especifique las credenciales dentro del web.config en la etiqueta de identidad.

Por defecto, las aplicaciones ASP.NET se ejecutan como yourmachine \ IUSR_ yourmachine. que o bien tienen que abrir los permisos en el recurso compartido a la directora Todo el mundo (que todavía puede no funcionar si las máquinas no están en el mismo dominio), o ejecutar la aplicación IIS como alguien que tiene acceso al recurso compartido.

Puede cambiar el usuario que la aplicación ASP.NET se ejecuta bajo por:

.Open Herramientas administrativas -> Servicios de Internet Information a continuación, haga clic derecho en el sitio web o directorio virtual que contiene la aplicación y haga clic en Propiedades . Elija el Seguridad de directorios y Editar . Por último, en la sección acceso anónimo escriba el nombre de usuario y contraseña de un usuario que tenga acceso al recurso compartido.

Mike

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top